package main

import (
	"fmt"
	"os"
	"os/signal"
)

//编译原则
//1 先终端 -> cd 桌面开发环境  -> npm run build 把前端vue编译打包 (桌面开发环境/src/lindk/requst 里的   baseURL:"/api",  //附加api 端口 在跨域的时候转换代理  编译前注释)
//2 先终端 -> cd.. 返回go项目 ->执行 go build -ldflags "-w -s -H windowsgui"   编译去黑框
// 3 如果 var 是否开发联动前端=true 的话 记得改成  false

// 0 编译的时候记得改成false
// 1 改成 true 的话 把桌面开发环境的文件 丢vscoed 或者其他开发工具  运行...
// 2 改成 true 的话 也可以用vscode 新建终端 -> cd 桌面开发环境  -> npm run dev 运行起来
var 是否开发联动前端 = false

// 只在开发环境包起作用
var 开启设计器 = false

func main() {
	Ws广播.C初始化()
	Ws标识.C初始化()
	全_响应.C初始化()
	等待 := make(chan int, 1)
	go 启动后端服务器(&等待)
	<-等待
	if 是否开发联动前端 { //项目编译 一定记得要改成 false  这是开发环境
		全_后端基础url = 全_文本.C创建文本("http://localhost:{1}/", 全_开发联动前端端口)
	} else {
		全_后端基础url = 全_文本.C创建文本("http://localhost:{1}/", 全_后端服务器端口)
	}
	//全_主窗口.Z置谷歌路径(`E:\11_golang\27_lorca桌面拖拽开发\最新版\lorca\Chrome\chrome.exe`)
	全_主窗口.C创建窗口(全_后端基础url, 1400, 900, false)
	go 打开设计器()
	go 开发监测ctrl加c退出事件()
	启动事件()
	全_主窗口.D等待谷歌窗口关闭()
	if 开启设计器 {
		全_设计器窗口.G关闭谷歌窗口()
	}

	fmt.Print("窗口关闭了")
}

func 启动事件() {
	C创建单组件环境("按钮","A按钮")

}

func 打开设计器() {
	if 开启设计器 {
		等待 := make(chan int, 1)
		go 启动ui设计器服务(&等待)
		<-等待
		if 全_设计器服务器端口 > 0 {
			全_设计器窗口.C创建窗口(全_文本.C创建文本("http://localhost:{1}/", 全_设计器服务器端口), 1100, 900, false)
		}
	}
}

func 开发监测ctrl加c退出事件() {
	监测通道 := make(chan os.Signal, 1)
	signal.Notify(监测通道, os.Interrupt)
	<-监测通道
	全_主窗口.G关闭谷歌窗口()
	if 开启设计器 {
		全_设计器窗口.G关闭谷歌窗口()
	}

}
